package 二叉树;

public class No100相同的树 {

    /**
     * 给定两个二叉树，编写一个函数来检验它们是否相同。
     *
     * 如果两个树在结构上相同，并且节点具有相同的值，则认为它们是相同的。
     *
     * 示例 1:
     *
     * 输入:       1         1
     *           / \       / \
     *          2   3     2   3
     *
     *         [1,2,3],   [1,2,3]
     *
     * 输出: true
     */

    public boolean isSameTree(TreeNode p, TreeNode q) {
        return dg(p,q);
    }

    private boolean dg(TreeNode node1,TreeNode node2){
        if(node1==null&&node2==null)
            return true;
        if(node1==null||node2==null)
            return false;
        if(node1.val!=node2.val)
            return false;
        boolean flag1 = dg(node1.left, node2.left);
        boolean flag2 = dg(node1.right, node2.right);
        return flag1&&flag2;
    }

}
